<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title>电子科大基线扫描平台</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="format-detection" content="telephone=no">

  <link rel="stylesheet" href="layui/css/layui.css">
  <style>
    /* 移动端 */
    @media screen and (max-width: 768px) {
      .layui-layout-admin .layui-layout-left,
      .layui-layout-admin .layui-body,
      .layui-layout-admin .layui-footer{left: 0;}
      .layui-layout-admin .layui-side{left: -300px;}
    }
  </style>
</head>
<body>

<div class="layui-layout layui-layout-admin">
  <div class="layui-header">
    <div class="layui-logo layui-hide-xs layui-bg-black">电子科大基线扫描平台</div>
    <!-- 头部区域（可配合layui 已有的水平导航） -->
    <ul class="layui-nav layui-layout-left">
      <!-- 移动端显示 -->
      <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
        <i class="layui-icon layui-icon-spread-left"></i>
      </li>

      <li class="layui-nav-item layui-hide-xs"><a href="">备份服务器</a></li>
      <li class="layui-nav-item layui-hide-xs"><a href="">日志服务器</a></li>
      <li class="layui-nav-item layui-hide-xs"><a href="">元宇宙服务器</a></li>
      <li class="layui-nav-item">
        <a href="javascript:;">日志网络</a>
        <dl class="layui-nav-child">
          <dd><a href="">扩展日志服务系统01</a></dd>
          <dd><a href="">扩展日志服务系统02</a></dd>
          <dd><a href="">扩展日志服务系统03</a></dd>
        </dl>
      </li>


    </ul>
    <ul class="layui-nav layui-layout-right">
      <li class="layui-nav-item layui-hide layui-show-md-inline-block">
        <a href="javascript:;">
          <img src="img/dzkd.png" style="width: 30px;height: 30px">
          电子科技大学管理员
        </a>
        <dl class="layui-nav-child">
          <dd><a href="">个人信息</a></dd>
          <dd><a href="">退出</a></dd>
        </dl>
      </li>
      <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
        <a href="javascript:;">
          <i class="layui-icon layui-icon-more-vertical"></i>
        </a>
      </li>
    </ul>
  </div>

  <div class="layui-side layui-bg-black">
    <div class="layui-side-scroll">
      <!-- 左侧导航区域（可配合layui已有的垂直导航） -->
      <ul class="layui-nav layui-nav-tree" lay-filter="test">
        <li class="layui-nav-item layui-nav-itemed">
          <a class="" href="javascript:;">用户管理模块</a>
          <dl class="layui-nav-child">
            <dd><a href="user.html">用户信息管理</a></dd>
            <dd><a href="black.html">黑白名单管理</a></dd>
          </dl>
        </li>
        <li class="layui-nav-item"><a href="host.html">主机信息管理</a></li>
        <li class="layui-nav-item"><a href="RIManager.html">远程入侵管理</a></li>
        <li class="layui-nav-item"><dd class="layui-this"><a href="listen_port.html">监听端口管理</a></dd></li>
        <li class="layui-nav-item layui-nav-itemed">
          <a class="" href="javascript:;">漏洞管理模块</a>
          <dl class="layui-nav-child">
            <a href="loophole.html">漏洞管理</a></dd>
          </dl>
        </li>
        <li class="layui-nav-item"><a href="log.html">异常登录管理</a></li>
      </ul>
    </div>
  </div>

  <div class="layui-body">
    <!-- 内容主体区域 -->
    <div style="padding: 15px;">
            <span class="layui-breadcrumb">
              <a href="index.html">首页</a>
              <a><cite>监听端口管理</cite></a>
            </span>

      <!-- 水平线 -->
      <hr class="layui-bg-blue">

      <!-- 搜索条件 -->
      <fieldset class="layui-elem-field">
        <legend>筛选条件</legend>
        <div class="layui-field-box">
          <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">端口号</label>
            <div class="layui-input-inline">
              <input type="text" id="search_portNumber" placeholder="请输入端口号" class="layui-input">
            </div>

            <label class="layui-form-label">端口协议</label>
            <div class="layui-input-inline">
              <input type="text" id="search_portProtocol" placeholder="请输入端口协议" class="layui-input">
            </div>
          </div>
          <label class="layui-form-label">进程名称</label>
          <div class="layui-input-inline">
            <input type="text" id="search_processName" placeholder="请输入进程名称" class="layui-input">
          </div>
        </div>


        <div class="layui-form-item layui-form-pane">
            <div class="layui-inline">
              <button class="layui-btn layui-btn-radius layui-btn-warm" id="iReset">重置</button>
              <button class="layui-btn layui-btn-radius layui-btn-normal" id="searchVal">搜索</button>
            </div>
        </div>
      </fieldset>

      <table class="layui-hide" id="test" lay-filter="test"></table>

    </div>
  </div>

  <div class="layui-footer">
    <!-- 底部固定区域 -->
    @Copyright  电子科技大学  edu.dzkd.com
  </div>

  <script type="text/html" id="toolbarDemo"> <!-- script type="text/html" 默认代表是隐藏的内容 并且默认不会占据任何页面空间  -->
  <div class="layui-btn-container">
    <button class="layui-btn layui-btn-sm" lay-event="insertPort">新增端口</button>
    <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
    <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
    <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
  </div>
  </script>

  <script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  </script>
  <script type="text/html" id="insert_form">
    <div class="layui-field-box">
      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">端口号</label>
        <div class="layui-input-inline">
          <input type="text" id="insert_portNumber" class="layui-input" placeholder="请输入端口号">
        </div>
      </div>

      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">端口协议</label>
        <div class="layui-input-inline">
          <input type="text" id="insert_portProtocol" class="layui-input" placeholder="请输入端口协议">
        </div>
      </div>

      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">进程名称</label>
        <div class="layui-input-inline">
          <input type="text" id="insert_processName" class="layui-input" placeholder="请输入进程名称">
        </div>
      </div>

      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">主机个数</label>
        <div class="layui-input-inline">
          <input type="text" id="insert_numberOfHostMachines" class="layui-input" placeholder="请输入主机个数">
        </div>
      </div>
    </div>
  </script>

  <script type="text/html" id="update_form">
    <div class="layui-field-box">
      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">端口号</label>
        <div class="layui-input-inline">
          <input type="text" id="update_portNumber" class="layui-input" placeholder="请输入端口号">
        </div>
      </div>

      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">端口协议</label>
        <div class="layui-input-inline">
          <input type="text" id="update_portProtocol" class="layui-input" placeholder="请输入端口协议">
        </div>
      </div>

      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">进程名称</label>
        <div class="layui-input-inline">
          <input type="text" id="update_processName" class="layui-input" placeholder="请输入进程名称">
        </div>
      </div>

      <div class="layui-form-item layui-form-pane">
        <label class="layui-form-label">主机个数</label>
        <div class="layui-input-inline">
          <input type="text" id="update_numberOfHostMachines" class="layui-input" placeholder="请输入主机个数">
        </div>
      </div>
    </div>
  </script>
</div>
<script src="layui/layui.js"></script>
<script src="jquery.1.11.js"></script>
<script>
  $("#iReset").click(function () {
    $("#search_portNumber").val("");
    $("#search_portProtocol").val("");
    $("#search_processName").val("");
    tableFlush();
  });

  $("#searchVal").click(function () {
    let portNumber = $("#search_portNumber").val();
    let portProtocol = $("#search_portProtocol").val();
    let processName = $("#search_processName").val();
    let dkJSON = {};
    if(portNumber != null && portNumber != '') {
      dkJSON.portNumber = portNumber;
    }
    if(portProtocol != null && portProtocol != '') {
      dkJSON.portProtocol = portProtocol;
    }
    if(processName != null && processName != '') {
      dkJSON.processName = processName;
    }
    tableFlush(dkJSON);
  });

  function tableFlush(dkJSON) {
    layui.use('table', function(){
      var table = layui.table;

      table.render({
        elem: '#test'
        ,url:'/hy_selectByPage'
        ,where: dkJSON              // {username:'dk', age: 22}
        ,toolbar: '#toolbarDemo' //开启头部工具栏，并为其绑定左侧模板
        ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
          title: '提示'
          ,layEvent: 'LAYTABLE_TIPS'
          ,icon: 'layui-icon-tips'
        }]
        ,title: '监听端口表'
        ,cols: [[
          {type: 'checkbox', fixed: 'left'}
          ,{field:'id', title:'ID', width:100, fixed: 'left', unresize: true, sort: true}
          ,{field:'portNumber', title:'端口号', width:200, unresize: true}
          ,{field:'portProtocol', title:'端口协议', width:200, unresize: true}
          ,{field:'processName', title:'进程名称', width:200, unresize: true}
          ,{field:'numberOfHostMachines', title:'主机个数', width:150, unresize: true}
          ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
        ]]
        ,page: true
      });

      //头工具栏事件
      table.on('toolbar(test)', function(obj){
        var checkStatus = table.checkStatus(obj.config.id);   // 当前页面的所有内容包含对象
        switch(obj.event){
          case 'insertPort':
            layer.open({     // 弹出框处理  模态框
              type: 1               // 模态框
              ,title: '新增端口' //不显示标题栏
              ,closeBtn: false
              ,area: ['500px','500px']  // 宽和高
              ,shade: 0.5
              ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
              ,btn: ['新增', '取消']
              ,btnAlign: 'c'
              ,moveType: 1 //拖拽模式，0或者1
              ,content: $('#insert_form').html()         // 引入自定义表单
              ,btn1: function(index, layero){            // 这个是新增按钮点击事件
                // layer.msg("新增按钮执行");
                let portNumber = $("#insert_portNumber").val();
                let portProtocol = $("#insert_portProtocol").val();
                let processName = $("#insert_processName").val();
                let numberOfHostMachines = $("#insert_numberOfHostMachines").val();

                $.ajax({
                  url:"/port/hy_insert",           // 请求路径
                  type:"post",                  // 请求的方式，不区分大小写
                  cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                  contentType:"application/json;charset=utf-8",
                  data: JSON.stringify({
                    portNumber:portNumber,
                    portProtocol:portProtocol,
                    processName:processName,
                    numberOfHostMachines:numberOfHostMachines
                  }),
                  datatype:"json",        // 返回类型，text文本、html页面、json数据
                  success:function(response){
                    console.log("返回: " + response);
                    if(response.code === 200) {
                      layer.msg("新增用户成功!");
                      layer.close(index);                         // 关闭当前窗口
                    }
                  },
                  error:function(response){
                    console.log("出错返回: " + response);
                    layer.msg("端口号重复，新增用户失败!");
                  }
                });
              }
              ,success: function(layero){

              }
            });
            break;
          case 'getCheckData':
            var data = checkStatus.data;                  // data就是用户选中的内容，data是一个JSONArray
            layer.alert(JSON.stringify(data));
            break;
          case 'getCheckLength':
            var data = checkStatus.data;
            layer.msg('选中了：'+ data.length + ' 个');
            break;
          case 'isAll':
            layer.msg(checkStatus.isAll ? '全选': '未全选');
            break;

                //自定义头工具栏右侧图标 - 提示
          case 'LAYTABLE_TIPS':
            layer.alert('这是工具栏右侧自定义的一个图标按钮');
            break;
        };
      });

      //监听行工具事件
      table.on('tool(test)', function(obj){
        var data = obj.data;                          // 这里传递data是用户当前选中的行的完整记录
        console.log(data)
        if(obj.event === 'del'){
          layer.confirm('真的删除行么', function(index){
            $.ajax({
              url:"/port/hy_deleteById",           // 请求路径
              type:"post",                  // 请求的方式，不区分大小写
              cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
              data: {
                id:data.id
              },
              datatype:"json",        // 返回类型，text文本、html页面、json数据
              success:function(response){
                console.log("返回: " + response);
                if(response.code === 200) {
                  layer.msg("删除用户成功!");
                  layer.close(index);                         // 关闭当前窗口
                }
              },
              error:function(response){
                console.log("出错返回: " + response);
              }
            });
          });
        } else if(obj.event === 'edit'){
          layer.open({     // 弹出框处理  模态框
            type: 1               // 模态框
            ,title: '编辑用户' //不显示标题栏
            ,closeBtn: false
            ,area: ['500px','500px']  // 宽和高
            ,shade: 0.5
            ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
            ,btn: ['更新', '取消']
            ,btnAlign: 'c'
            ,moveType: 1 //拖拽模式，0或者1
            ,content: $('#update_form').html()         // 引入自定义表单
            ,btn1: function(index, layero){            // 这个是更新按钮点击事件
              let portNumber = $("#update_portNumber").val();
              let portProtocol = $("#update_portProtocol").val();
              let processName = $("#update_processName").val();
              let numberOfHostMachines = $("#update_numberOfHostMachines").val();
              $.ajax({
                url:"/port/updatePort",           // 请求路径
                type:"post",                  // 请求的方式，不区分大小写
                cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                data: {
                  id:data.id,
                  portNumber:portNumber,
                  portProtocol:portProtocol,
                  processName:processName,
                  numberOfHostMachines:numberOfHostMachines
                },
                datatype:"json",        // 返回类型，text文本、html页面、json数据
                success:function(response){
                  console.log("返回: " + response);
                  if(response.code === 200) {
                    layer.msg("更新用户成功!");
                    layer.close(index);                         // 关闭当前窗口
                  }
                },
                error:function(response){
                  console.log("出错返回: " + response);
                }
              });
            }
            ,success: function(layero){
              $("#update_portNumber").val(data.portNumber);
              $("#update_portProtocol").val(data.portProtocol);
              $("#update_processName").val(data.processName);
              $("#update_numberOfHostMachines").val(data.numberOfHostMachines);
            }
          });
        }
      });
    });
  }

  tableFlush();   // 空参  代表 全查
</script>

</body>
</html>
